

package Formularios;


import Clases.ConexionMySql;
import Clases.Producto;
import Clases.Stock;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.SimpleDateFormat;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;


public class productos extends javax.swing.JFrame {
    private DefaultTableModel busqueda;

   
    public productos() {
        initComponents();
        llamar();
        
        codigo_producto.setEnabled(false);
        
        codigo_barra.setEnabled(false);
        nombre_producto.setEnabled(false);
        descripcion_producto.setEnabled(false);
        grupo_producto.setEnabled(false);
        seleccionar_grupo.setEnabled(false);
        cantidad_producto.setEnabled(false);
        fecha_ingreso.setEnabled(false);
        agregar_producto.setEnabled(false);
        eliminar_producto.setEnabled(false);
        actualizar_producto.setEnabled(false);
        
    }

  
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jPanel1 = new javax.swing.JPanel();
        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        jLabel4 = new javax.swing.JLabel();
        jLabel5 = new javax.swing.JLabel();
        agregar_producto = new javax.swing.JButton();
        eliminar_producto = new javax.swing.JButton();
        actualizar_producto = new javax.swing.JButton();
        nuevo_producto = new javax.swing.JButton();
        codigo_producto = new javax.swing.JTextField();
        codigo_barra = new javax.swing.JTextField();
        nombre_producto = new javax.swing.JTextField();
        descripcion_producto = new javax.swing.JTextField();
        grupo_producto = new javax.swing.JTextField();
        jLabel7 = new javax.swing.JLabel();
        seleccionar_grupo = new javax.swing.JButton();
        fecha_ingreso = new com.toedter.calendar.JDateChooser();
        jLabel8 = new javax.swing.JLabel();
        cantidad_producto = new javax.swing.JTextField();
        jLabel6 = new javax.swing.JLabel();
        jButton10 = new javax.swing.JButton();
        producto_busqueda = new javax.swing.JTextField();
        buscar_nombre = new javax.swing.JButton();
        jLabel10 = new javax.swing.JLabel();
        jScrollPane1 = new javax.swing.JScrollPane();
        vista = new javax.swing.JTable();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jPanel1.setBorder(javax.swing.BorderFactory.createBevelBorder(0));

        jLabel1.setText("Codigo:");

        jLabel2.setText("Codigo de Barra:");

        jLabel3.setText("Nombre:");

        jLabel4.setText("Descripcion:");

        jLabel5.setText("Grupo:");

        agregar_producto.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagenes/guardar.png"))); // NOI18N
        agregar_producto.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                agregar_productoActionPerformed(evt);
            }
        });

        eliminar_producto.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagenes/excluded.png"))); // NOI18N
        eliminar_producto.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                eliminar_productoActionPerformed(evt);
            }
        });

        actualizar_producto.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagenes/editar.png"))); // NOI18N
        actualizar_producto.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                actualizar_productoActionPerformed(evt);
            }
        });

        nuevo_producto.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagenes/agregar.gif"))); // NOI18N
        nuevo_producto.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                nuevo_productoActionPerformed(evt);
            }
        });

        grupo_producto.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                grupo_productoActionPerformed(evt);
            }
        });

        jLabel7.setText("Fecha de Ingreso:");

        seleccionar_grupo.setText("...");
        seleccionar_grupo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                seleccionar_grupoActionPerformed(evt);
            }
        });

        fecha_ingreso.setDateFormatString("yyyy-MM-dd");

        jLabel8.setText("Cantidad:");

        cantidad_producto.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                cantidad_productoActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap(90, Short.MAX_VALUE)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jLabel5)
                    .addComponent(jLabel4)
                    .addComponent(jLabel3)
                    .addComponent(jLabel2)
                    .addComponent(jLabel7)
                    .addComponent(jLabel1))
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addGap(40, 40, 40)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(codigo_producto, javax.swing.GroupLayout.PREFERRED_SIZE, 82, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addGroup(jPanel1Layout.createSequentialGroup()
                                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addGroup(jPanel1Layout.createSequentialGroup()
                                        .addComponent(grupo_producto, javax.swing.GroupLayout.PREFERRED_SIZE, 61, javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addGap(18, 18, 18)
                                        .addComponent(seleccionar_grupo, javax.swing.GroupLayout.PREFERRED_SIZE, 16, javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addGap(44, 44, 44)
                                        .addComponent(jLabel8))
                                    .addGroup(jPanel1Layout.createSequentialGroup()
                                        .addComponent(fecha_ingreso, javax.swing.GroupLayout.PREFERRED_SIZE, 149, javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addGap(125, 125, 125)
                                        .addComponent(agregar_producto, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                        .addComponent(eliminar_producto, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(actualizar_producto, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)))
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(nuevo_producto, javax.swing.GroupLayout.PREFERRED_SIZE, 31, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                .addComponent(cantidad_producto, javax.swing.GroupLayout.PREFERRED_SIZE, 55, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                                    .addComponent(descripcion_producto, javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(nombre_producto, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 270, Short.MAX_VALUE)))))
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addGap(55, 55, 55)
                        .addComponent(codigo_barra, javax.swing.GroupLayout.PREFERRED_SIZE, 270, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addGap(17, 17, 17))
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(jPanel1Layout.createSequentialGroup()
                                .addGap(21, 21, 21)
                                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addGroup(jPanel1Layout.createSequentialGroup()
                                        .addGap(48, 48, 48)
                                        .addComponent(jLabel2))
                                    .addGroup(jPanel1Layout.createSequentialGroup()
                                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                            .addComponent(jLabel1)
                                            .addComponent(codigo_producto, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                                        .addGap(18, 18, 18)
                                        .addComponent(codigo_barra, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                                .addGap(25, 25, 25)
                                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                    .addComponent(jLabel3)
                                    .addComponent(nombre_producto, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                    .addComponent(jLabel4)
                                    .addComponent(descripcion_producto, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                                .addGap(35, 35, 35)
                                .addComponent(jLabel5))
                            .addGroup(jPanel1Layout.createSequentialGroup()
                                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                    .addComponent(grupo_producto, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addComponent(seleccionar_grupo, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addComponent(jLabel8)
                                    .addComponent(cantidad_producto, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))))
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(jPanel1Layout.createSequentialGroup()
                                .addGap(25, 25, 25)
                                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                    .addComponent(jLabel7)
                                    .addComponent(fecha_ingreso, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                            .addGroup(jPanel1Layout.createSequentialGroup()
                                .addGap(21, 21, 21)
                                .addComponent(agregar_producto))))
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
                        .addGap(0, 0, Short.MAX_VALUE)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(eliminar_producto, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 24, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(actualizar_producto, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 24, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(nuevo_producto, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 24, javax.swing.GroupLayout.PREFERRED_SIZE))))
                .addGap(18, 18, 18))
        );

        jLabel6.setFont(new java.awt.Font("Tahoma", 3, 30)); // NOI18N
        jLabel6.setText("Producto");

        jButton10.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagenes/close.png"))); // NOI18N
        jButton10.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton10ActionPerformed(evt);
            }
        });

        buscar_nombre.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagenes/buscar.png"))); // NOI18N
        buscar_nombre.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                buscar_nombreActionPerformed(evt);
            }
        });

        jLabel10.setText("Nombre: ");

        vista.setBackground(new java.awt.Color(204, 204, 204));
        vista.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {
                "Id Producto", "Cod. Barra", "Nombre", "Descripcion", "Grupo", "Gravament", "Fecha de Ingreso"
            }
        ));
        vista.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                vistaMouseClicked(evt);
            }
        });
        jScrollPane1.setViewportView(vista);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(216, 216, 216)
                .addComponent(jLabel6, javax.swing.GroupLayout.PREFERRED_SIZE, 158, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(0, 0, Short.MAX_VALUE))
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jScrollPane1)
                    .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(jLabel10)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(producto_busqueda, javax.swing.GroupLayout.PREFERRED_SIZE, 228, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(29, 29, 29)
                        .addComponent(buscar_nombre, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(jButton10, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(0, 0, Short.MAX_VALUE)))
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addComponent(jLabel6)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 146, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(25, 25, 25)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(jLabel10)
                        .addComponent(producto_busqueda, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addComponent(buscar_nombre)
                        .addComponent(jButton10, javax.swing.GroupLayout.PREFERRED_SIZE, 29, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void jButton10ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton10ActionPerformed
atras();// TODO add your handling code here:
    }//GEN-LAST:event_jButton10ActionPerformed

    private void seleccionar_grupoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_seleccionar_grupoActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_seleccionar_grupoActionPerformed

    private void buscar_nombreActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buscar_nombreActionPerformed

        ConexionMySql con = new ConexionMySql();
        Connection cnn = con.conectar();
        String[] titulos = {"Id Producto","Cod. Barra","Nombre","Descripcion","Grupo","Cantidad","Fecha de Ingreso"};
        busqueda = new DefaultTableModel(null,titulos);
        String [] registro = new String[8];
        String id = (producto_busqueda.getText());
        String sql = "SELECT Id_Producto,Codigo_barra,Nombre,Descripcion,Grupo,cantidad,Fecha_ingreso FROM producto where Nombre LIKE '%" + id +"%'";
        try
        {
            Statement st = cnn.createStatement();
            ResultSet rs = st.executeQuery(sql);

            while(rs.next()){
                registro[0]= rs.getString(1);
                registro[1]= rs.getString(2);
                registro[2]= rs.getString(3);
                registro[3]= rs.getString(4);
                registro[4]= rs.getString(5);
                registro[5]= rs.getString(6);
                registro[6]= rs.getString(7);
               

                busqueda.addRow(registro);
            }
            vista.setModel(busqueda);
        }
        catch (SQLException e)
        {
            JOptionPane.showMessageDialog(null, e);

        }
    }//GEN-LAST:event_buscar_nombreActionPerformed

    private void vistaMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_vistaMouseClicked
        int filasel = vista.getSelectedRow();
        String valor = (String) busqueda.getValueAt(filasel,0);
        PasarTabla(valor);
    }//GEN-LAST:event_vistaMouseClicked

    private void agregar_productoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_agregar_productoActionPerformed
        ConexionMySql con= new ConexionMySql();
        Connection reg= con.conectar();
        System.out.println("Conexion establecida");
        SimpleDateFormat fecha= new SimpleDateFormat("yyyy-MM-dd");
        Producto producto = new Producto();
        
        //producto.setId_producto(Integer.parseInt(codigo_producto.getText()));
        producto.setCodigo_barra(Integer.parseInt(codigo_barra.getText()));
        producto.setNombre(nombre_producto.getText());
        producto.setDescripcion(descripcion_producto.getText());
        producto.setGrupo(Integer.parseInt(grupo_producto.getText()));
        producto.setCantidad(Integer.parseInt(cantidad_producto.getText()));
        producto.setFecha_compra(fecha.format(fecha_ingreso.getDate()));
        String sql;
         sql="Insert into producto (Codigo_barra,Nombre,Descripcion,Grupo,cantidad,Fecha_ingreso) values "+"(?,?,?,?,?,?);";
        try {
            PreparedStatement pat=reg.prepareStatement(sql);
            pat.setInt(1, producto.getCodigo_barra());
            pat.setString(2, producto.getNombre());
            pat.setString(3,producto.getDescripcion());
            pat.setInt(4,producto.getGrupo());
            pat.setInt(5, producto.getCantidad());
            pat.setString(6,producto.getFecha_compra());
            int var=pat.executeUpdate();
                if (var > 0){
                   JOptionPane.showMessageDialog(null, "Se Registro Con exito");
                   llamar();
                } 
            limpiar();
           actualizarStock();
            
            
        } catch (SQLException ex) {
            Logger.getLogger(productos.class.getName()).log(Level.SEVERE, null, ex);
        }
    }//GEN-LAST:event_agregar_productoActionPerformed

    private void grupo_productoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_grupo_productoActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_grupo_productoActionPerformed

    private void eliminar_productoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_eliminar_productoActionPerformed
        ConexionMySql con= new ConexionMySql();
        Connection reg= con.conectar();
        System.out.println("Conexion establecida");
        Producto producto = new Producto();
        
        producto.setId_producto(Integer.parseInt(codigo_producto.getText()));
        
        String sql;
         sql="DELETE FROM producto WHERE Id_Producto=?;";
        try {
            PreparedStatement pat=reg.prepareStatement(sql);
            pat.setInt(1, producto.getId_producto());
            
            pat.executeUpdate();
            
            JOptionPane.showMessageDialog(null, "Se Elimino Con exito");
            llamar();
            limpiar();
            
            
        } catch (SQLException ex) {
            Logger.getLogger(productos.class.getName()).log(Level.SEVERE, null, ex);
        }
    }//GEN-LAST:event_eliminar_productoActionPerformed

    private void actualizar_productoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_actualizar_productoActionPerformed
        ConexionMySql con= new ConexionMySql();
        Connection reg= con.conectar();
        System.out.println("Conexion establecida");
        SimpleDateFormat fecha= new SimpleDateFormat("yyyy-MM-dd");
        Producto producto = new Producto();
        producto.setId_producto(Integer.parseInt(codigo_producto.getText()));
        producto.setCodigo_barra(Integer.parseInt(codigo_barra.getText()));
        producto.setNombre(nombre_producto.getText());
        producto.setDescripcion(descripcion_producto.getText());
        producto.setGrupo(Integer.parseInt(grupo_producto.getText()));
        producto.setCantidad(Integer.parseInt(cantidad_producto.getText()));
        producto.setFecha_compra(fecha.format(fecha_ingreso.getDate()));
        
        String sql;
         sql="UPDATE producto"+" SET Codigo_barra=?,"+" Nombre=?,"+" Descripcion=?,"+" Grupo=?,"+"cantidad=?,"+ "Fecha_ingreso=?"+" WHERE Id_Producto=?;";
        try {
            PreparedStatement pat=reg.prepareStatement(sql);
            pat.setInt(1, producto.getCodigo_barra());
            pat.setString(2, producto.getNombre());
            pat.setString(3,producto.getDescripcion());
            pat.setInt(4,producto.getGrupo());
            pat.setInt(5, producto.getCantidad());
            pat.setString(6,producto.getFecha_compra());
            pat.setInt(7, producto.getId_producto());
            pat.executeUpdate();
            
            JOptionPane.showMessageDialog(null, "Se Modifico Con exito");
            llamar();
            limpiar();
            
            
        } catch (SQLException ex) {
            Logger.getLogger(productos.class.getName()).log(Level.SEVERE, null, ex);
        }
    }//GEN-LAST:event_actualizar_productoActionPerformed

    private void nuevo_productoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_nuevo_productoActionPerformed
       //codigo_producto.setEnabled(false);
        
        codigo_barra.setEnabled(true);
        nombre_producto.setEnabled(true);
        descripcion_producto.setEnabled(true);
        grupo_producto.setEnabled(true);
        seleccionar_grupo.setEnabled(true);
        cantidad_producto.setEnabled(true);
        fecha_ingreso.setEnabled(true);
        
        codigo_producto.setText("");
        
        codigo_barra.setText("");
        nombre_producto.setText("");
        descripcion_producto.setText("");
        grupo_producto.setText("");
        seleccionar_grupo.setText("");
        cantidad_producto.setText("");
        fecha_ingreso.setDate(null);
        
        agregar_producto.setEnabled(true);
        eliminar_producto.setEnabled(true);
        actualizar_producto.setEnabled(true);
    }//GEN-LAST:event_nuevo_productoActionPerformed

    private void cantidad_productoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cantidad_productoActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_cantidad_productoActionPerformed

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(productos.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(productos.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(productos.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(productos.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new productos().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton actualizar_producto;
    private javax.swing.JButton agregar_producto;
    private javax.swing.JButton buscar_nombre;
    private javax.swing.JTextField cantidad_producto;
    private javax.swing.JTextField codigo_barra;
    private javax.swing.JTextField codigo_producto;
    private javax.swing.JTextField descripcion_producto;
    private javax.swing.JButton eliminar_producto;
    private com.toedter.calendar.JDateChooser fecha_ingreso;
    private javax.swing.JTextField grupo_producto;
    private javax.swing.JButton jButton10;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel10;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JLabel jLabel7;
    private javax.swing.JLabel jLabel8;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTextField nombre_producto;
    private javax.swing.JButton nuevo_producto;
    private javax.swing.JTextField producto_busqueda;
    private javax.swing.JButton seleccionar_grupo;
    private javax.swing.JTable vista;
    // End of variables declaration//GEN-END:variables

    private void atras() {
        principal v=new principal();
        v.setVisible(true);
        v.setLocationRelativeTo(this);
        this.dispose();
    }
    String actualizar ="";
    private void PasarTabla(String valor) {
        ConexionMySql con = new ConexionMySql();
      Connection cnn = con.conectar();
    String sql = "SELECT Id_Producto,Codigo_barra,Nombre,Descripcion,Grupo,Cantidad,Fecha_ingreso FROM producto where Id_Producto = "+ valor;  
    try 
      {
        Statement st = cnn.createStatement();
        ResultSet rs = st.executeQuery(sql);
        if(rs.next()){
        codigo_producto.setText(rs.getString(1));
        
        codigo_barra.setText(rs.getString(2));
        nombre_producto.setText(rs.getString(3));
        descripcion_producto.setText(rs.getString(4));
        grupo_producto.setText(rs.getString(5));
        cantidad_producto.setText(rs.getString(6));
        fecha_ingreso.setDate(rs.getDate(7));
            
            
          
        }
      } 
      catch (SQLException e) 
      {
            JOptionPane.showMessageDialog(null, e);
      }
      actualizar = valor;
    }

    private void llamar() {
        ConexionMySql con = new ConexionMySql();
        Connection cnn = con.conectar();
        String[] titulos = {"Id Producto","Cod. Barra","Nombre","Descripcion","Grupo","Cantidad","Fecha de Ingreso"};
        busqueda = new DefaultTableModel(null,titulos);
        String [] registro = new String[8];
        String id = (producto_busqueda.getText());
        String sql = "SELECT Id_Producto,Codigo_barra,Nombre,Descripcion,Grupo,cantidad,Fecha_ingreso FROM producto where Nombre LIKE '%" + id +"%'";
        try
        {
            Statement st = cnn.createStatement();
            ResultSet rs = st.executeQuery(sql);

            while(rs.next()){
                registro[0]= rs.getString(1);
                registro[1]= rs.getString(2);
                registro[2]= rs.getString(3);
                registro[3]= rs.getString(4);
                registro[4]= rs.getString(5);
                registro[5]= rs.getString(6);
                registro[6]= rs.getString(7);
               

                busqueda.addRow(registro);
            }
            vista.setModel(busqueda);
        }
        catch (SQLException e)
        {
            JOptionPane.showMessageDialog(null, e);

        }    
    }

    private void limpiar() {
        
        codigo_barra.setEnabled(true);
        nombre_producto.setEnabled(true);
        descripcion_producto.setEnabled(true);
        grupo_producto.setEnabled(true);
        seleccionar_grupo.setEnabled(true);
        cantidad_producto.setEnabled(true);
        fecha_ingreso.setEnabled(true);
        
        codigo_producto.setText("");
        
        codigo_barra.setText("");
        nombre_producto.setText("");
        descripcion_producto.setText("");
        grupo_producto.setText("");
        seleccionar_grupo.setText("");
        cantidad_producto.setText("");
        fecha_ingreso.setDate(null);
        
        agregar_producto.setEnabled(true);
        eliminar_producto.setEnabled(true);
        actualizar_producto.setEnabled(true);
    }

   private void actualizarStock() {
            Stock stock = new Stock();
       try {
             ConexionMySql con= new ConexionMySql();
             Connection reg= con.conectar();
             
             String seleccionar="SELECT Id_producto FROM stock WHERE Id_producto LIKE '%" + codigo_producto +"%'";
             Statement st = reg.createStatement();
             ResultSet rs = st.executeQuery(seleccionar);
             boolean x = rs.next();
             if(x==true){
             
             //stock.setId_Stock(Integer.parseInt(actualizar));
             stock.setId_producto(Integer.parseInt(codigo_producto.getText()));
             //stock.setProducto(nombre_producto.getText());
             stock.setStock(Integer.parseInt(cantidad_producto.getText()));
             //stock.setFecha_ingreso(fecha.format(fecha_ingreso.getDate()));
             
             String sql;
              sql="UPDATE Stock"+" SET stock=stock+? WHERE Id_producto=?;";
             
                 PreparedStatement pat=reg.prepareStatement(sql);
                 pat.setInt(1, stock.getStock());
                 pat.setInt(2, stock.getId_producto());
                 
                 pat.executeUpdate(); 
             }else {
             
             SimpleDateFormat fecha= new SimpleDateFormat("yyyy-MM-dd");
             //stock.setId_Stock(Integer.parseInt(actualizar));
             stock.setId_producto(Integer.parseInt(codigo_producto.getText()));
             stock.setproducto(nombre_producto.getText());
             stock.setStock(Integer.parseInt(cantidad_producto.getText()));
             stock.setFecha_ingreso(fecha.format(fecha_ingreso.getDate()));
             
             String sql;
              sql="Insert into stock (Id_producto,Producto,Stock,Fecha_ingreso) values "+"(?,?,?,?);";
             
                 PreparedStatement pat=reg.prepareStatement(sql);
                 pat.setInt(1, stock.getId_producto());
                 pat.setString(2, stock.getproducto());
                 pat.setInt(3, stock.getStock());
                 pat.setString(4, stock.getFecha_ingreso());
                 
                 pat.executeUpdate(); 
             }
       }catch(NumberFormatException e){
                 e.getMessage();
             }
          catch (SQLException ex) {
            Logger.getLogger(stock.class.getName()).log(Level.SEVERE, null, ex);
           // Logger.getLogger(productos.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
}
